PREDICTIVE PROGRAMMING AND FORESHADOWING